package com.glb.gilibuy.service;

import com.github.pagehelper.PageInfo;
import com.glb.gilibuy.entity.Cart;
import com.glb.gilibuy.entity.Product;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: Yingtian qian
 * @Date: 2021/7/30 15:57
 */
public interface CartService {

    /**
     * @Description: 基础Dao方法：根据购物车id获取单个购物车项
     * @param:
     * @return:
     */
    Cart selectCartByCartId(String cartId);

    /**
     * @Description: 基础Dao方法：根据用户id获取购物车项列表
     * @param:
     * @return:
     */
    List<Cart> selectCartsByUserId(String userId);

    Integer selectCountByUserId(String userId);

    /**
     * @Description: 添加商品至购物车
     * @param: cart 购物车项
     * @return: 提示信息
     */
    Map<String, Object> addCart(Cart cart);

    /**
     * @Description: 修改购物车中的属性
     * @param: cart 购物车项
     * @return: 提示信息
     */
    Map<String, Object> updateCart(Cart cart);

    /**
     * @Description: 删除购物车中的商品
     * @param:
     * @return:
     */
    Map<String, Object> deleteCart(Cart cart);

    PageInfo findCartsByUserId(String userId);

    Map<String, Object> findSelectedCarts(String[] cartIds, HttpSession httpSession);

    Map<String, Object> findSelectedProduct(Product product, Integer num, HttpSession httpSession);

}

